#include "MacApplication.h"
#include "SystemInformation.h"
#include "Window.h"
#include "HCM/ComponentRegistry.h"

using namespace Hiranipra;
using namespace Hiranipra::HCM;
using namespace Hiranipra::Platform;

// {24E82C95-1C58-4420-94FE-8991F922F18A}
DEFINE_HCMID( implId ) = { 0x24e82c95, 0x1c58, 0x4420, { 0x94, 0xfe, 0x89, 0x91, 0xf9, 0x22, 0xf1, 0x8a } };
REGISTER_COMPONENT_IMPL( Hiranipra::Platform::IApplication, MacApplication, implId );

MacApplication::MacApplication()
{
	_systemInfo = new SystemInformation();
}

MacApplication::~MacApplication()
{
	RELEASE( _systemInfo );
}

ISystemInformation* MacApplication::QuerySystemInformation() const
{
	return _systemInfo;
}

IWindow* MacApplication::NewWindow( const WindowParameters& params )
{
	return new Window( params );
}

uint64 MacApplication::GetTimeFrequency() const
{
    ASSERT( false, "not implemented" );
    return 0;
}

uint64 MacApplication::GetTimeElapsed()
{
    ASSERT( false, "not implemented" );
    return 0;
}

bool MacApplication::Update()
{
	return true;
}
